De werking Convolutional Neural Network

Hoe werken Neural Networks?

Een Neural Network werkt door informatie te verwerken via een netwerk van kunstmatige neuronen. Deze neuronen zijn verbonden met andere neuronen via synaptische verbindingen, hierdoor wordt informatie doorgegeven, ingevoerd of uitgevoerd naar andere ionen. Het hele proces begint bij het invoeren van informatie (input). Deze informatie kan tekst, een afbeelding of een reeks getallen bevatten. Deze informatie wordt vervolgens doorgegeven aan de eerste laag van neuronen. Elke neuron wijst dan een bepaald gewicht aan, dit doen ze dan vermenigvuldigen met een eigen set van gewichten. Dit proces wordt herhaald tot het de output laag bereikt. Die output laag heeft bevat dan uiteindelijk het resultaat, dat kunnen classificaties, verklaringen of beslissingen zijn. Tijdens het trainen van een Neural Network worden de gewichten van de synaptische bindingen aangepast, om ze de nauwkeurigheid van het resultaat te verbeteren. Dit wordt gedaan door het vergelijken met de output waarde en de voorspelde berekening, dan wordt het gewicht aangepast. Dit proces wordt herhaald tot er een nauwkeurige voorspelling ontstaat. Een Neural Network trainen kan ontzettend lang duren. Er zijn verschillende Algoritmen en methodes om het proces te versnellen en de nauwkeurigheid te verbeteren.

Hoe werken CNNs?

CNN kan meerdere lagen hebben, elke leert de kenmerken van de afbeelding herkennen. De filter wordt toegevoegd om elke afbeelding om een output te produceren die na elke laag een betere kwaliteit krijgt. Na elke succesvolle laag, wordt de filter complexer om de unieke kenmerken te identificeren. De output van de ingewikkelde laag, het bijna herkenbare afbeelding na elke laag wordt de input voor de volgende laag. Dan herkent de CNN de afbeelding. Met convolution, gaat de input afbeelding door deze verschillende filters. Elke filter activeert een bepaald kenmerk van de afbeelding. Elke laag leert een bepaald kenmerk te identificeren, de operaties worden uiteindelijk tientallen, honderden of duizenden keren herhaald. Uiteindelijk wordt de data van de afbeelding door de CNNs verschillende lagen gehaald zodat de CNN het hele object kan identificeren.

Wiskunde in de CNN

Om te weten hoe afbeeldingen worden herkent door CNN, wordt er eerst uitgelegd hoe een afbeelding wordt opgeslagen. Een afbeelding zijn eigenlijk matrices van getallen. Elk getal bepaald de kleur en de helderheid van één pixel. De kleuren worden bepaald door het RGB model, met rood, groen en blauw als kleuren. Die getallen liggen tussen de 0-255.

Kernel convolution wordt niet alleen voor CNN gebruikt, het is ook een belangrijk element in computer vision algoritmes. Het is een proces waarbij een kleine matrix (de kernel of filter) wordt genomen, wat over de foto wordt gehaald en dan getransformeerd op de waardes van de filters. Die data wordt berekent door de standaardformule, waarbij de input afbeelding f is en de kernel is h. de rijen en kolommen zijn m en n.

Nadat de filter over de pixel is gegaan, wordt elke waarde van de kernel vermenigvuldigd in paren met overeenkomende waardes van de afbeelding. Uiteindelijk wordt alles opgeteld en naar de juiste output map gestuurd. Om ervoor te zorgen dat de input afbeelding dezelfde afmeting heeft als de output afbeelding wordt een andere wiskundige formule gebruikt. Hierbij is p de opvulling en f de filter dimensie (bijna altijd oneven).

In plaats van het werken met een kernel dat verschuift met één pixel, kan het ook met een grotere stap worden gedaan. De CNN kan zelf worden gekozen of de stap wordt vergroot. Als we willen dat een veld wordt overlapt of we een kleinere dimensie willen. De dimensie van de output matrix waarbij gekeken wordt naar opvulling en de grootte wordt berekent met de formule:

Voor 3-dimensionale afbeeldingen wordt er weer een formule gebruikt. Hiervoor vermenigvuldigen paren van waardes van de 3-demensionale ruimte. Dit wordt gedaan door het gebruiken van meerdere filters op één afbeelding, de convolution wordt afzonderlijk uitgevoerd op de filters. De resultaten worden gecombineerd met elkaar in één geheel. Hierbij is n de afbeelding grootte, f de filter grootte, nc de hoeveelheid van kanalen, p de opvulling en s de stappen en nf de hoeveelheid filters.

Met al deze informatie aan formules, kan nu die informatie gebruikt worden om één laag van de CNN te maken. De voorwaartse voortplanting bestaat uit twee stappen. De eerste stap is het berekenen van Z, dat wordt verkregen door de resultaten van convolution van de input data van de vorige laag dit wordt gedaan met w de filters en b het toevoegen van de bias. De tweede applicatie van de niet-lineaire activeringsfunctie naar de tussenliggende waarde, in de formule g genoemd.